home *** CD-ROM | disk | FTP | other *** search
/ Magnum One / Magnum One (Mid-American Digital) (Disc Manufacturing).iso / d5 / planetar.arc / FRONT.BAS (.txt) < prev    next >
Encoding:
GW-BASIC  |  1986-05-08  |  20.9 KB  |  396 lines

  1. 1  ON ERROR GOTO 2800:KEY OFF:KEY 9,"width 80"+CHR$(13):KEY 10,"screen 0,1"+CHR$(13)
  2. 18  SCREEN 1:WIDTH 80:DEF SEG=&HB800:BLOAD"tpage",0
  3. 20  DIM EK%(160),ND(12),CITY$(25,4,1),IC(25,4),TP(9,1),P$(13),T$(13),O$(15),L$(15),P%(20),P11%(144),P12%(280),P13%(432),P14%(2608),P15%(432),P16%(280),P17%(192),P21%(144),P22%(280),P23%(432),P24%(2608),P25%(432),P26%(280),P27%(192)
  4. 22  FOR N=0 TO 160:READ EK%(N):NEXT N
  5. 23  DATA  48 , 53 ,-241 ,-1 ,-3841 , 48 , 0 , 3072 , 192 , 0 , 768 , 192 , 0 ,768 , 192 , 0 , 768 , 192 , 0 , 768 , 192 , 0 , 768 , 192 , 0 , 768 , 192 , 0,768 , 192 , 0 , 768 , 192 , 0 , 768 , 192 , 0 , 768 , 192 , 0
  6. 24  DATA  768 , 192 , 0 , 768 ,-64 ,-1 ,-15361 , 255 , 0 , 12288 , 252 , 0 ,3072 , 252 , 0 , 3072 , 252 , 0 , 3072 , 252 , 0 , 3072 , 252 , 0 , 3072 , 252, 0 , 3072 , 252 , 816 , 3072 , 252 , 1008 , 3072 , 1020 , 1008 , 3072 , 4092 ,-1 , 3072
  7. 25  DATA  1020 , 240 , 3072 , 252 , 240 , 3072 , 252 , 48 , 3072 , 252 , 0 ,3072 , 252 , 0 , 3072 , 252 , 0 , 3072 , 252 , 0 , 3072 , 195 , 0 , 12288 ,-256 ,-1 ,-16129 , 0 , 0 , 0 , 192 , 0 , 768 , 240 , 0 , 3840 ,-49 ,-1 ,-3073 ,192
  8. 26  DATA  0 , 768 , 192 , 0 , 768 , 192 , 0 , 768 , 192 , 0 , 768 , 192 , 0 ,768 , 192 , 0 , 768 , 192 , 0 , 768 , 192 , 0 , 768 , 192 , 0 , 768 , 192 , 0,768 , 192 , 0 , 768 , 192 , 0 , 768 , 48 , 0 , 3072 ,-241 ,-1 ,-3841
  9. 28  LOCATE 25,14:PRINT"Copyright 1985 by Marilyn Davis.  All rights reserved.";
  10. 30  DIM P31%(144),P32%(280),P33%(432),P34%(2608),P35%(432),P36%(280),P37%(192),P01%(144),P02%(280),P03%(432),P04%(2608),P05%(432),P06%(280),P07%(192)
  11. 35  FOR N=0 TO 15:READ O$(N):L$(N)=CHR$(176):NEXT N
  12. 36  DATA 1022,1023,1024,1026,1027,1029,1030,1621,1622,1623,1624,1625,1626,1627,1629,1630
  13. 37  FOR N=0 TO 13:READ P$(N):T$(N)=CHR$(176):NEXT N
  14. 38  DATA 1215,1216,1218,1219,1221,1222,1223,1224,1226,1615,1616,1618,1619,1621
  15. 42  FOR N=0 TO 20:READ P%(N):NEXT N:READ CT,ST,L,LO,R,XC,YC,RF,PI
  16. 43  DATA 22,11,4096,0,16,4096,0,16,4096,21760,21589,4096,0,16,4096,0,16,4096,0,0,0,.8660254,.5,20.833,2000,120,159,103.0857,.01745329,3.141593
  17. 44  C1=1:C2=2:C3=1:C4=2:C5=1:CY=3:GR=2:WH=7:RD=4:BR=6:BW=15
  18. 45  CLS:SCREEN 0:KEY OFF:WIDTH 40:LOCATE 4,13:COLOR 7:PRINT"Are you using a":LOCATE 7,13:PRINT"color monitor?":LOCATE 10,13:PRINT"Press";:COLOR 15:LOCATE 13,15:PRINT"Y";:COLOR 7:PRINT"  for";:COLOR 15:PRINT" Y";:COLOR 7:PRINT"es":LOCATE 15,18:PRINT"or"
  19. 46  LOCATE 17,15:COLOR 15:PRINT"N";:COLOR 7:PRINT"  for ";:COLOR 15:PRINT"N";:COLOR 7:PRINT"o."
  20. 47  A$=INKEY$:IF A$=""THEN 47 ELSE IF A$="Y"OR A$="y"THEN MO=0 ELSE IF A$="n" OR A$="N"THEN MO=1:GR=7:CY=7:BR=7:RD=15:C1=0:C2=1:C3=3:C4=0:C5=3:FOR N=0 TO 20:READ P%(N):NEXT N
  21. 49  DATA 22,11,12288,0,48,12288,0,48,12288,-256,-769,12288,0,48,12288,0,48,12288,0,0,0
  22. 50  SCREEN 0:WIDTH 40:CLS
  23. 51  LOCATE 5,11:COLOR BR:PRINT"Do you know your":LOCATE 7,11:COLOR BW:PRINT"latitude ";:COLOR BR:PRINT"and";:COLOR BW:PRINT" longitude";:COLOR BR:PRINT"?":LOCATE 10,11:PRINT"Please press
  24. 52  LOCATE 13,15:COLOR BW:PRINT"Y";:COLOR BR:PRINT"  for ";:COLOR BW:PRINT"YES":LOCATE 15,18:COLOR BR:PRINT"or":LOCATE 17,15:COLOR BW:PRINT"N  ";:COLOR BR:PRINT"for";:COLOR BW:PRINT" NO";:COLOR BR:PRINT".":LOCATE 19,15
  25. 53  A$=INKEY$:IF A$="" THEN 53
  26. 54  IF A$="Y" OR A$="y" THEN 1200 ELSE IF A$="N" OR A$="n" THEN 55 ELSE GOTO 53
  27. 55  SCREEN 1,0,0:COLOR C1,C2:LOCATE 1,1:PRINT"Please wait...";:DEF SEG=&HB800:BLOAD"g-100",0:VG=0:IST=1
  28. 56  GET (60,53)-(71,147),P01%
  29. 57  GET (72,31)-(87,169),P02%
  30. 58  GET (88,15)-(107,185),P03%
  31. 59  GET (108,0)-(211,199),P04%
  32. 60  GET (212,15)-(231,185),P05%
  33. 61  GET(232,31)-(247,169),P06%
  34. 62  GET(248,53)-(260,147),P07%:IN(0)=1
  35. 65  LOCATE 1,1:PRINT"Use the ";:IF MO=0 THEN DEF SEG:POKE &H4E,1:PRINT"arrow keys":POKE &H4E,3:ELSE PRINT"arrow keys
  36. 66  PRINT"on the right":PRINT"side of your":PRINT"keyboard to":PRINT"place the":PRINT"over your":PRINT"location":PRINT"on the":PRINT"earth.":PUT(75,31),P%,XOR
  37. 67  LINE(151,4)-(287,4),C3:LINE(287,4)-(287,50),C3:DRAW"bm 284,47 c="+VARPTR$(C3):DRAW"m+3,+3 m+3,-3
  38. 69  LINE(278,57)-(296,76),C3,B:LINE(257,79)-(275,98),C3,B:LINE(298,79)-(316,98),C3,B:LINE(278,101)-(296,120),C3,B:PAINT(279,63),C3:PAINT(258,87),C3:PAINT(299,87),C3:PAINT(279,111),C3
  39. 71  DRAW"c="+VARPTR$(C4):DRAW" bm 260,93 m +2,+2 bm -2,-2 m+2,-2 bm -2,+2 m +5,0 bm 280,70 m+2,-2 m+2,+2 bm-2,-2 m +0,5 bm 282,112 m+0,+5 m-2,-2 bm +2,+2 m +2,-2 bm 303,93 m+5,0 m-2,-2 bm+2,+2 m-2,+2"
  40. 73  LOCATE 22,31:PRINT"Press the";:LOCATE 23,31:PRINT"ENTER key";:LOCATE 24,28:PRINT"when you are";:LOCATE 25,31:PRINT"finished.";:LOCATE 22,1
  41. 75  X=145:Y=85:NV=0:A$=INKEY$:GOTO 999
  42. 80  PUT(60,53),P01%,PSET
  43. 81  PUT(72,31),P02%,PSET
  44. 82  PUT(88,15),P03%,PSET
  45. 83  PUT(108,0),P04%,PSET
  46. 84  PUT(212,15),P05%,PSET
  47. 85  PUT(232,31),P06%,PSET
  48. 86  PUT(248,53),P07%,PSET:IF IST>0 THEN GOTO 65 ELSE GOTO 990
  49. 100  DEF SEG=&HB800:BLOAD"g-10",0
  50. 101  GET (72,31)-(87,169),P12%
  51. 102  GET (60,53)-(71,147),P11%
  52. 103  GET (72,31)-(87,169),P12%
  53. 104  GET (88,15)-(107,185),P13%
  54. 105  GET (108,0)-(211,199),P14%
  55. 106  GET (212,15)-(231,185),P15%
  56. 107  GET(232,31)-(247,169),P16%
  57. 108  GET(248,53)-(260,147),P17%:IN(1)=1:GOTO 990
  58. 180  PUT(60,53),P11%,PSET
  59. 181  PUT(72,31),P12%,PSET
  60. 182  PUT(88,15),P13%,PSET
  61. 183  PUT(108,0),P14%,PSET
  62. 184  PUT(212,15),P15%,PSET
  63. 185  PUT(232,31),P16%,PSET
  64. 186  PUT(248,53),P17%,PSET:GOTO 990
  65. 200  DEF SEG=&HB800:BLOAD"g80",0
  66. 201  GET (60,53)-(71,147),P21%
  67. 202  GET (72,31)-(87,169),P22%
  68. 203  GET (88,15)-(107,185),P23%
  69. 204  GET (108,0)-(211,199),P24%
  70. 205  GET (212,15)-(231,185),P25%
  71. 206  GET(232,31)-(247,169),P26%
  72. 207  GET(248,53)-(260,147),P27%:IN(2)=1:GOTO 990
  73. 280  PUT(60,53),P21%,PSET
  74. 281  PUT(72,31),P22%,PSET
  75. 282  PUT(88,15),P23%,PSET
  76. 283  PUT(108,0),P24%,PSET
  77. 284  PUT(212,15),P25%,PSET
  78. 285  PUT(232,31),P26%,PSET
  79. 286  PUT(248,53),P27%,PSET:GOTO 990
  80. 300  DEF SEG=&HB800:BLOAD"g170",0
  81. 301  GET (60,53)-(71,147),P31%
  82. 302  GET (72,31)-(87,169),P32%
  83. 303  GET (88,15)-(107,185),P33%
  84. 304  GET (108,0)-(211,199),P34%
  85. 305  GET (212,15)-(231,185),P35%
  86. 306  GET(232,31)-(247,169),P36%
  87. 307  GET(248,53)-(260,147),P37%:IN(3)=1:GOTO 990
  88. 380  PUT(60,53),P31%,PSET
  89. 381  PUT(72,31),P32%,PSET
  90. 382  PUT(88,15),P33%,PSET
  91. 383  PUT(108,0),P34%,PSET
  92. 384  PUT(212,15),P35%,PSET
  93. 385  PUT(232,31),P36%,PSET
  94. 386  PUT(248,53),P37%,PSET:GOTO 990
  95. 400  LOCATE 1,1:PRINT STRING$(39,32):PRINT STRING$(14,32):PUT (75,31),P%,XOR:PRINT STRING$(12,32):PRINT STRING$(11,32):PRINT STRING$(9,32):GOTO 999
  96. 405  LOCATE 6,1:PRINT STRING$(9,32):PRINT STRING$(9,32):PRINT STRING$(8,32):PRINT STRING$(6,32):PRINT STRING$(6,32):GOTO 999
  97. 430  LINE(151,4)-(287,4),0:LINE(287,4)-(287,50),0:DRAW"bm 284,47 c0 m+3,+3 m+3,-3":GOTO 999
  98. 431  LINE(278,57)-(296,76),0,B:LINE(257,79)-(275,98),0,B:LINE(298,79)-(316,98),0,B:LINE(278,101)-(296,120),0,B:PAINT(279,63),0:PAINT(258,87),0:PAINT(299,87),0:PAINT(279,111),0
  99. 432  DRAW"c0 bm 260,93 m +2,+2 bm -2,-2 m+2,-2 bm -2,+2 m +5,0 bm 280,70 m+2,-2 m+2,+2 bm-2,-2 m +0,5 bm 282,112 m+0,+5 m-2,-2 bm +2,+2 m +2,-2 bm 303,93 m+5,0 m-2,-2 bm+2,+2 m-2,+2":GOTO 999
  100. 440  LOCATE 22,31:PRINT STRING$(9,32):LOCATE 23,31:PRINT STRING$(9,32):LOCATE 24,28:PRINT STRING$(12,32);:LOCATE 25,31:PRINT STRING$(9,32);:LOCATE 20,1:PUT(296,147),EK%:GOTO 999
  101. 500  DRAW"bm 150,108 c="+VARPTR$(C5):DRAW" r16 f2 d16 g2 l16 h2 u16 e2 bm -3,-1 l12 g2 d19 f2 r17 h1r17 f1 l16  BM +19,-23 R14 F2 D19 G2 L14 E2 U 19 H2":LOCATE 15,20:PRINT"Num":LOCATE 16,20:PRINT"Lock":LOCATE 12,15:PRINT"Please press:"
  102. 510  A$=INKEY$:IF A$="" THEN 510 ELSE IF A$="8" OR A$="4" OR A$="2" OR A$="6" THEN 510 ELSE IF IST>0 THEN CLS
  103. 512  ON (VG+1) GOTO 80,180,280,380
  104. 990  LOCATE 1,1:PRINT STRING$(15,32)
  105. 995  IF IUP=1 OR ID=1 THEN TIME$="00:00:00"
  106. 999  PUT(X,Y),P%,XOR:LOCATE 1,1
  107. 1000  A$=INKEY$:IF A$=""THEN 1000
  108. 1005  IF LEN(A$)=1 THEN 1050
  109. 1010  B$=RIGHT$(A$,1):XO=X:YO=Y
  110. 1020  IF B$=CHR$(72)THEN Y=Y-1:ID=0:GOTO 1090 ELSE IUP=0:IF B$=CHR$(75)THEN X=X-1:ID=0:GOTO 1090 ELSE IF B$=CHR$(77)THEN X=X+1:ID=1:GOTO 1090:ELSE IF B$=CHR$(80)THEN Y=Y+1:GOTO 1090
  111. 1050  IF A$=CHR$(13) THEN CIRCLE(163,99),52,,,,3/18:LOCATE 13,17:PRINT"Thank you.":GOSUB 2500:GOTO 1160
  112. 1055  IF A$=CHR$(27) THEN 50 ELSE IF A$="8" OR A$="6" OR A$="4" OR A$="2" THEN 500 ELSE GOTO 1000
  113. 1090  PUT(XO,YO),P%,XOR:IF Y>157 THEN 1121 ELSE IF Y<13 THEN IF IUP=0 OR (IUP=1 AND TIME$>"00:00:01") THEN LOCATE 1,1:PRINT"Please wait...":GOSUB 2500:VG=(VG+2)MOD 4:IUP=1:GOTO 1140 ELSE Y=YO:GOTO 999
  114. 1100  IF X>160 THEN 1110 ELSE IF X<(210-Y)/1.49 OR X<(Y+1548)/21.3 THEN LOCATE 1,1:PRINT"Please wait...":GOSUB 2500:VG=(VG+3)MOD 4:GOTO 1140 ELSE GOTO 1125
  115. 1110  IF X>(Y+249)/1.49 OR X>(5023-Y)/21.3 THEN LOCATE 1,1:PRINT"Please wait...":GOSUB 2500:VG=(VG+1)MOD 4:GOTO 1140 ELSE GOTO 1125
  116. 1121  IF X<134 AND (Y>0.91*X+85.3 OR Y>0.42*X+135)THEN IF ID=0 OR (ID=1 AND TIME$>"00:00:02") THEN LOCATE 1,1:PRINT"Please wait...":GOSUB 2500:VG=(VG+3)MOD 4:ID=1:GOTO 1140 ELSE Y=YO:X=XO:GOTO 999
  117. 1123  IF X>174 AND(Y>-0.91*X+365 OR Y>-0.42*X+264.4)THEN IF ID=0 OR (ID=1 AND TIME$>"00:00:02") THEN LOCATE 1,1:PRINT"Please wait...":GOSUB 2500:VG=(VG+1)MOD 4:ID=1:GOTO 1140 ELSE Y=YO:X=XO:GOTO 999
  118. 1124  IF Y>189 THEN Y=189
  119. 1125  IF IST>0 THEN IST=IST+1:IF IST=6 THEN GOTO 400 ELSE IF IST=7 THEN GOTO 405 ELSE IF IST=8 THEN GOTO 430 ELSE IF IST=9 THEN 431 ELSE IF IST=10 THEN IST=0:GOTO 440
  120. 1130  GOTO 999
  121. 1140  GOSUB 2700:IF IN(VG)=0 THEN ON VG GOTO 100,200,300
  122. 1150  ON (VG+1) GOTO 80,180,280,380:STOP
  123. 1160  LAT=ATN(TA)/RF:LAT2=LAT:NS$="North":IF LAT<0 THEN LAT2=-LAT:NS$="South"
  124. 1165  L1=INT(LAT+0.0083):L12=(LAT2-L1)*60:L2=INT(L12+0.5):LAT$=RIGHT$(STR$(L1),2)+CHR$(248)+RIGHT$(STR$(L2),2)+"'"+" "+NS$
  125. 1170  EW$="West":LON=-O/RF:O1=LON:IF O1<0 THEN O1=-O1:EW$="East"
  126. 1175  L1=INT(O1+0.0083):L12=(O1-L1)*60:L2=INT(L12+0.5):LON$=RIGHT$(STR$(L1),3)+CHR$(248)+RIGHT$(STR$(L2),2)+"'"+" "+EW$
  127. 1180  GOTO 1600
  128. 1200  FL=0:FL2=0:A$=INKEY$:CLS:IQ=0:LOCATE 7,10:PRINT"Please type in your ":LOCATE 10,10:COLOR BW:PRINT"latitude";:COLOR BR:PRINT":   ";
  129. 1210  E$=STRING$(3,176)+CHR$(248)+STRING$(2,176)+"'"+STRING$(2,176)+CHR$(34):PRINT E$
  130. 1220  LOCATE 13,10:PRINT"and your":LOCATE 16,10:COLOR BW:PRINT"longitude";:COLOR BR:PRINT": "CHR$(176) E$
  131. 1230  LOCATE 21,10:PRINT"Press the ENTER key":LOCATE 22,10:PRINT"when you are finished."
  132. 1240  CL$(0)="":CL$(1)="'":CL$(2)=CHR$(34):L$(11)=CHR$(248):N=0:GOTO 1400
  133. 1250  LOCATE Y+1,X:COLOR BW:PRINT CHR$(24):COLOR BR:LOCATE Y+1,X:YO=Y:XO=X
  134. 1260  A$=INKEY$:IF A$=""THEN 1260
  135. 1270  PRINT" ":LOCATE Y,X
  136. 1280  IF A$=CHR$(27)THEN 50
  137. 1290  IF LEN(A$)=2 THEN B$=RIGHT$(A$,1) ELSE B$="A":GOTO 1350
  138. 1310  IF B$=CHR$(77)THEN PRINT L$(N);:GOTO 1390
  139. 1320  IF B$=CHR$(75) THEN PRINT L$(N);:N=(N+15)MOD 16:GOTO 1400
  140. 1330  IF B$=CHR$(72) AND Y=16 THEN Y=10:PRINT L$(N);:N=N-8:IF N=-1 THEN N=0:X=22:GOTO 1402 ELSE IF N>3 THEN N=N-1:GOTO 1400 ELSE GOTO 1400
  141. 1340  IF B$=CHR$(80) AND Y=10 THEN PRINT L$(N);:N=N+8:Y=16:IF N>10 THEN N=N+1:GOTO 1402 ELSE GOTO 1402
  142. 1350  IF A$=CHR$(8) THEN L$(N)=CHR$(176):PRINT L$(N);:N=(N+15)MOD 16:GOTO 1400
  143. 1363  IF N=11 AND (A$="d" OR A$="D") THEN L$(11)=CHR$(248):PRINT CHR$(248);:CL$(0)="":CL$(1)="'":CL$(2)=CHR$(34):LOCATE 16,28:PRINT "'":LOCATE 16,31:PRINT CHR$(34):GOTO 1390
  144. 1366  IF N=11 AND (A$="h" OR A$="H") THEN L$(11)="h":PRINT"h";:CL$(0)=" ":CL$(1)="m ":CL$(2)="s":LOCATE 16,28:PRINT"m":LOCATE 16,31:PRINT"s":GOTO 1390
  145. 1367  IF N=11 THEN N=12:PRINT L$(11);
  146. 1368  IF A$=" " OR A$="+" OR A$="-" OR (ASC(A$)<58 AND ASC(A$)>47)THEN PRINT A$;:L$(N)=A$:GOTO 1390
  147. 1370  IF A$=CHR$(13) THEN COLOR BW:LOCATE 24,15:PRINT"Thank you.";:COLOR BR:GOTO 1420
  148. 1380  GOTO 1250
  149. 1390  N=(N+1)MOD 16
  150. 1400  Y=VAL(LEFT$(O$(N),2)):X=VAL(RIGHT$(O$(N),2)):IQ=IQ+1
  151. 1402  IF FL=1 THEN FL=0:LOCATE YO-1,XO-8:PRINT STRING$(18,32)
  152. 1403  IF FL2=1 THEN FL2=0:LOCATE 14,20:PRINT STRING$(13,32):LOCATE 15,20:PRINT STRING$(16,32)
  153. 1405  B$="":IF N=11 THEN LOCATE 14,20:COLOR BW:PRINT"d";:COLOR BR:PRINT" for degrees";:LOCATE 15,20:PRINT"or ";:COLOR BW:PRINT"h";:COLOR BR:PRINT" for hours":FL2=1:GOTO 1250
  154. 1410  IF N=7 THEN LOCATE Y-1,X-8:COLOR BW:PRINT"+ ";:COLOR BR:PRINT"for W or ";:COLOR BW:PRINT"-";:COLOR BR:PRINT" for E";:FL=1:GOTO 1250
  155. 1411  IF N=0 THEN LOCATE Y-1,X-8:COLOR BW:PRINT"+";:COLOR BR:PRINT" for N or";:COLOR BW:PRINT" - ";:COLOR BR:PRINT"for S";:FL=1:GOTO 1250
  156. 1412  GOTO 1250
  157. 1420  NS$="North":EW$="West"
  158. 1430  FOR N=0 TO 6:IF L$(N)="-" THEN L$(N)="":NS$="South" ELSE IF L$(N)="+" THEN L$(N)=""ELSE IF L$(N)=" "THEN L$(N)=""
  159. 1440  M=N+7:IF L$(M)="-"THEN L$(M)="":EW$="East"ELSE IF L$(M)="+" THEN L$(M)=""ELSE IF L$(M)=" "THEN L$(M)=""
  160. 1445  IF L$(N)=CHR$(176) THEN L$(N)=""
  161. 1446  IF L$(M)=CHR$(176) THEN L$(M)=""
  162. 1450  NEXT N:IF L$(14)=" "OR L$(14)=CHR$(176) OR L$(14)="+"OR L$(14)="-"THEN L$(14)=""
  163. 1455  IF L$(15)=" "OR L$(15)=CHR$(176) OR L$(14)="+"OR L$(14)="-"THEN L$(15)=""
  164. 1460  ON ERROR GOTO 1530
  165. 1462  IF L$(0)+L$(1)+L$(2)=""THEN L$(0)="0"
  166. 1463  IF L$(3)+L$(4)=""THEN L$(3)="0"
  167. 1464  IF L$(5)+L$(6)=""THEN L$(6)="0"
  168. 1465  IF L$(7)+L$(8)+L$(9)+L$(10)=""THEN L$(10)="0"
  169. 1466  IF L$(12)+L$(13)=""THEN L$(13)="0"
  170. 1467  IF L$(14)+L$(15)=""THEN L$(15)="0"
  171. 1470  LAT$=L$(0)+L$(1)+L$(2)+CHR$(248)+L$(3)+L$(4)+"'"+L$(5)+L$(6)+CHR$(34)+" "+NS$
  172. 1480  LON$=L$(7)+L$(8)+L$(9)+L$(10)+L$(11)+CL$(0)+L$(12)+L$(13)+CL$(1)+L$(14)+L$(15)+CL$(2)+" "+EW$
  173. 1490  LAT=VAL(L$(0)+L$(1)+L$(2))+VAL(L$(3)+L$(4))/60+VAL(L$(5)+L$(6))/3600:IF NS$="South"THEN LAT=-LAT:CA=COS(LAT):SA=SIN(LAT)
  174. 1500  LON=VAL(L$(7)+L$(8)+L$(9)+L$(10))+VAL(L$(12)+L$(13))/60+VAL(L$(14)+L$(15))/3600:IF L$(11)="h"THEN LON=LON*15:IF LON>360 OR LON<0 THEN 1550 ELSE IF LON>180 THEN LON=360-LON:IF EW$="East"THEN EW$="West"ELSE EW$="East"
  175. 1502  IF LON>180 OR LON<0 OR LAT<-90 OR LAT>+90 THEN 1550
  176. 1505  IF LON=0 AND LAT=0 AND IQ<5 THEN 1550
  177. 1510  IF EW$="East" THEN LON=-LON
  178. 1520  ON ERROR GOTO 2800:GOTO 1600
  179. 1530  CLS:LOCATE 2,11:COLOR R:PRINT"Please try again.":ON ERROR GOTO 2800:RESUME 51
  180. 1550  CLS:LOCATE 2,11:COLOR BW:PRINT"Please try again.":ON ERROR GOTO 2800:GOTO 51
  181. 1600   FL=0:SCREEN 0,1:CLS:A$=INKEY$
  182. 1605   LOCATE 6,9:COLOR BR:PRINT"For what date and time":LOCATE 8,9:PRINT"do you want a star map?"
  183. 1610  LOCATE 12,9:PRINT"date: ";:COLOR GR:PRINT"MM";:COLOR BR:PRINT"/";:COLOR GR:PRINT"DD";:COLOR BR:PRINT"/";:COLOR GR:PRINT"YYYY "CHR$(176)CHR$(176)
  184. 1620  LOCATE 16,9:COLOR BR:PRINT"time: ";:COLOR GR:PRINT"HH";:COLOR BR:PRINT":";:COLOR GR:PRINT"MM "CHR$(176)"m"
  185. 1630  COLOR BR:LOCATE 20,9:PRINT"Press the ENTER key":LOCATE 22,9:PRINT"when you are finished.":A$=INKEY$
  186. 1640  N=0:GOTO 1820
  187. 1650  LOCATE Y+1,X:COLOR BW:PRINT CHR$(24):COLOR BR:LOCATE Y+1,X:YO=Y:XO=X
  188. 1660  A$=INKEY$:IF A$=""THEN 1660
  189. 1670  PRINT" ":LOCATE Y,X
  190. 1680  IF A$=CHR$(27)THEN 50
  191. 1690  IF LEN(A$)=2 THEN B$=RIGHT$(A$,1) ELSE B$="A"
  192. 1710  IF B$=CHR$(77)THEN PRINT T$(N);:GOTO 1810
  193. 1720  IF B$=CHR$(75) THEN PRINT T$(N);:N=(N+13)MOD 14:GOTO 1820
  194. 1730  IF B$=CHR$(72) AND Y=16 THEN Y=12:PRINT T$(N);:N=N-9:GOTO 1830
  195. 1740  IF B$=CHR$(80) AND Y=12 THEN PRINT T$(N);:N=N+9:Y=16:IF N>13 THEN N=13:GOTO 1820 ELSE GOTO 1830
  196. 1750  IF A$=CHR$(8) THEN T$(N)=CHR$(176):PRINT T$(N);:N=(N+13)MOD 14:GOTO 1820
  197. 1760  IF A$=" " OR (ASC(A$)<58 AND ASC(A$)>47)THEN PRINT A$;:T$(N)=A$:IF N<9 THEN 1810 ELSE MDN$=T$(9)+T$(10)+T$(11)+T$(12)+T$(13):GOTO 1805
  198. 1770  IF N<>13 THEN 1785 ELSE IF A$="A" THEN A$="a" ELSE IF A$="P" THEN A$="p"
  199. 1775  IF N=8 THEN IF A$="B" OR A$="b" THEN PRINT"BC":T$(N)="B":GOTO 1810 ELSE PRINT"AD":T$(N)="A":GOTO 1810
  200. 1780  IF A$="p" OR A$="a" THEN PRINT A$;:T$(N)=A$:MDN$=T$(9)+T$(10)+T$(11)+T$(12)+T$(13):GOTO 1805
  201. 1785  IF N=8 THEN IF A$="B" OR A$="b" THEN PRINT"BC":T$(N)="B":GOTO 1810 ELSE PRINT"AD":T$(N)="A":GOTO 1810
  202. 1790  IF A$=CHR$(13) THEN LOCATE 24,15:COLOR 15:PRINT"Thank you.";:GOTO 1850
  203. 1800  GOTO 1650
  204. 1805  LOCATE 16,25:COLOR BW:IF MDN$="1200p"THEN PRINT"Midnight"ELSE IF MDN$="1200a"THEN PRINT"Noon    "ELSE PRINT STRING$(8,32)
  205. 1810  N=(N+1)MOD 14
  206. 1820  Y=VAL(LEFT$(P$(N),2)):X=VAL(RIGHT$(P$(N),2))
  207. 1825  COLOR BW:LOCATE 11,24:IF N=8 THEN PRINT"AD or BC" ELSE PRINT"        "
  208. 1830  B$="":IF N=13 THEN LOCATE Y-1,X-4:COLOR BW:PRINT"am or pm";:COLOR BR:FL=1:GOTO 1650 ELSE IF FL=1 THEN FL=0:LOCATE YO-1,XO-4:PRINT STRING$(8,32):GOTO 1650 ELSE GOTO 1650
  209. 1850  FOR N=9 TO 12:IF T$(N)=CHR$(176) THEN T$(N)="0"
  210. 1851  NEXT N:COLOR BR:D$=DATE$:ON ERROR GOTO 1870:MO$=T$(0)+T$(1)
  211. 1852  IF T$(13)<>"p" THEN T$(13)="a"
  212. 1853  DA$=T$(2)+T$(3):Y$=T$(4)+T$(5)+T$(6)+T$(7):Y=VAL(Y$):YQ=Y:IF Y=0 THEN 1875 ELSE IF T$(8)="B"THEN Y=-Y+1:YQ=Y:Y$=Y$+" BC"ELSE Y$=Y$+" AD"
  213. 1854  IF YQ<1995 THEN YQ=YQ+4:GOTO 1854
  214. 1856  IF YQ>2000 THEN YQ=YQ-4:GOTO 1856
  215. 1858  YC$=RIGHT$(STR$(YQ),4):DATE$=MO$+"/"+DA$+"/"+YC$+" "+T$(8):DATE$=D$
  216. 1860  MI$=T$(11)+T$(12):MI=VAL(MI$):IF MI>60 THEN 1875
  217. 1862  H$=T$(9)+T$(10):H=VAL(H$):IF(H<12 AND T$(13)="p")OR(H=12 AND T$(13)="p" AND MI=0) THEN H=H+12:H$=RIGHT$(STR$(H),2)ELSE IF H=12 AND MI>0 AND T$(13)="a" THEN H=0:H$="00"
  218. 1865  ON ERROR GOTO 2800:GOTO 1900
  219. 1870  CLS:LOCATE 3,9:COLOR RD:PRINT"Please try again":ON ERROR GOTO 2800:RESUME 1605
  220. 1875  CLS:LOCATE 3,9:COLOR RD:PRINT"Please try again":ON ERROR GOTO 2800:GOTO 1605
  221. 1900  CLS:LOCATE 5,10:COLOR BR:PRINT"Are you in the same":LOCATE 7,10:PRINT"time zone as ...":LOCATE 10,10:PRINT"Please wait ..."
  222. 1902  IO=12-INT((LON+7.5)/15):IF IO=0 THEN IO=24
  223. 1904  IA=1:IF LAT<49 THEN IA=2:IF LAT<0 THEN IA=3
  224. 1905  ON IA GOTO 1908,1906,1907
  225. 1906  RESTORE 2004:GOTO 1910
  226. 1907  RESTORE 2054:GOTO 1910
  227. 1908  RESTORE 1954
  228. 1910  FOR J=1 TO 24:FOR K=1 TO 4:READ CITY$(J,K,0):READ CITY$(J,K,1):READ IC(J,K):NEXT K,J
  229. 1912  LOCATE 10,10:PRINT STRING$(15,32)
  230. 1914  KK=-1
  231. 1916  FOR K=1 TO 4:J=IC(IO,K):IF J=0 THEN 1926
  232. 1918  FOR NL=1 TO 4:X$=CITY$(J,NL,0):IF X$="x" THEN 1924
  233. 1920  KK=KK+1:IF LEFT$(X$,1)="?"THEN LE=LEN(X$):X$=RIGHT$(X$,LE-1):TP(KK,1)=1
  234. 1922  LOCATE KK+10,10:PRINT X$:PS$(KK)=X$:TP(KK,0)=VAL(CITY$(J,NL,1))
  235. 1924  NEXT NL
  236. 1926  NEXT K
  237. 1928  LOCATE KK+11,10:PRINT "None of these":
  238. 1930  LOCATE 22,10:PRINT"Please type the first":LOCATE 23,10:PRINT"three letters: ";
  239. 1932  A$=INKEY$:IF A$=""THEN 1932
  240. 1934  IF A$=CHR$(27) THEN GOTO 50
  241. 1936  IF A$>"`" AND A$<"{" THEN A=ASC(A$)-32:A$=CHR$(A)
  242. 1940  IF A$>"@" AND A$<"[" THEN PRINT A$; ELSE GOTO 1932
  243. 1942  IT=0
  244. 1944  B$=INKEY$:IF B$=""THEN 1944
  245. 1946  IF B$=CHR$(27) THEN GOTO 50
  246. 1948  IF B$>"@" AND B$<"[" THEN B=ASC(B$)+32:B$=CHR$(B)
  247. 1950  IF B$>"`" AND B$<"{" THEN A$=A$+B$:PRINT B$;:IT=IT+1:IF IT=1 THEN 1944 ELSE 2200
  248. 1952  IF B$=CHR$(8) THEN IF IT=0 THEN LOCATE 23,25:PRINT" ";:LOCATE 23,25:GOTO 1932 ELSE IT=0:LOCATE 23,26:PRINT " ";:LOCATE 23,26:A$=LEFT$(A$,1):GOTO 1944
  249. 1953  GOTO 1944
  250. 1954  DATA ?Nome,11 ,1,Anadyr,11,2,x,0,0,x,0,0
  251. 1956  DATA ?Anchorage,10,2,Honolulu,10,0,x,0,0,x,0,0
  252. 1958  DATA Yakutat,9,2,x,0,3,x,0,4,x,0,5
  253. 1960  DATA Vancouver,8,4,x,0,5,x,0,0,x,0,0
  254. 1962  DATA Edmonton,7,5,x,0,6,x,0,0,x,0,0
  255. 1964  DATA Winnepeg,6,6,x,0,7,x,0,0,x,0,0
  256. 1966  DATA Montreal,5,7,x,0,8,x,0,0,x,0,0
  257. 1968  DATA Halifax,4,7,Newfoundland,3.5,8,x,0,9,x,0,0
  258. 1970  DATA Gothab,3,9,x,0,8,x,0,0,x,0,0
  259. 1972  DATA Cape Verde Is.,2,9,x,0,10,x,0,11,x,0,12
  260. 1974  DATA Azores,1,11,x,0,12,x,0,13,x,0,9
  261. 1976  DATA London,0,12,x,0,13,x,0,0,x,0,0
  262. 1978  DATA Paris,-1,13,x,0,14,x,0,15,x,0,0
  263. 1980  DATA Helsinki,-2,14,x,0,15,x,0,16,x,0,13
  264. 1982  DATA Moskow,-3,15,x,0,16,x,0,17,x,0,0
  265. 1984  DATA Gorki,-4,16,x,0,17,x,0,18,x,0,0
  266. 1986  DATA Sverdlovsk,-5,17,x,0,18,x,0,19,x,0,20
  267. 1988  DATA Tashkent,-6,18,x,0,19,x,0,20,x,0,0
  268. 1990  DATA Novosibirsk,-7,19,x,0,20,x,0,18,x,0,21
  269. 1992  DATA Irkutsk,-8,20,Hong Kong,-8,21,x,0,0,x,0,0
  270. 1994  DATA Yakutsk,-9,20,Tokyo,-9,21,x,0,22,x,0,23
  271. 1996  DATA Vladivostok,-10,22,x,0,23,x,0,24,x,0,0
  272. 1998  DATA Magadan,-11,23,x,0,24,x,0,1,x,0,0
  273. 2000  DATA Petropavlovsk,-12,23,x,0,24,x,0,1,x,0,0
  274. 2002  'middle set
  275. 2004  DATA Midway Is.,11,1,?Nome,11,2,x,0,0,x,0,0
  276. 2006  DATA Honolulu,10,2,?Anchorage,10,0,x,0,0,x,0,0
  277. 2008  DATA Yakutat,9,2,x,0,3,x,0,4,x,0,0
  278. 2010  DATA ?Los Angeles,8,4,Tijuana,8,5,x,0,0,x,0,0
  279. 2012  DATA ?Denver,7,5,Phoenix,7,6,Hermosillo,7,0,x,0,0
  280. 2014  DATA ?Chicago,6,6,Mexico City,6,7,Winnipeg,6,0,x,0,0
  281. 2016  DATA Montreal,5,7,?New York,5,8,Indianapolis,5,0,Bogota,5,0
  282. 2018  DATA New Foundland,3.5,7,Caracas,4,8,Georgetown,3.75,9,Paramaribo,3.5,0
  283. 2020  DATA Rio de Janeiro,3,8,Halifax,4,9,x,0,0,x,0,0
  284. 2022  DATA Cape Verde Is.,2,9,x,0,10,x,0,11,x,0,0
  285. 2024  DATA Azores,1,11,x,0,12,x,0,13,x,0,0
  286. 2026  DATA Casablanca,0,12,London,0,13,x,0,0,x,0,0
  287. 2028  DATA Paris,-1,13,x,0,14,x,0,0,x,0,0
  288. 2030  DATA Cairo,-2,13,x,0,14,x,0,15,x,0,0
  289. 2032  DATA Bagdad,-3,14,Teheran,-3.5,15,x,0,16,x,0,17
  290. 2034  DATA Gorki,-4,16,Kabul,-4.5,17,Sverdlovsh,-5,15,x,0,0
  291. 2036  DATA Karachi,-5,16,Bombay,-5.5,17,Tashkent,-6,20,x,0,0
  292. 2038  DATA Dacca,-6,17,Rangoon,-6.5,18,x,0,19,x,0,20
  293. 2040  DATA Singapore,-7.5,18,Bangkok,-7,19,x,0,20,x,0,0
  294. 2042  DATA Hongkong,-8,19,Novosibirsk,-7,20,x,0,21,x,0,0
  295. 2044  DATA Tokyo,-9,20,x,0,21,x,0,22,x,0,0
  296. 2046  DATA Sydney,-10,21,Vladivostok,-10,22,x,0,23,x,0,0
  297. 2048  DATA New Caledonia,-11,23,Nauru,-11.5,24,x,0,0,x,0,0
  298. 2050  DATA Marshall Is.,-12,24,x,0,1,x,0,0,x,0,0
  299. 2052  'bottom
  300. 2054  DATA Tonga,11,1,x,0,2,x,0,0,x,0,0
  301. 2056  DATA Honolulu,10,2,x,0,0,Cook Is.,10.5,0,x,0,0
  302. 2058  DATA Yakutat,9,2,Marguesas Is.,9.5,3,x,0,4,x,0,0
  303. 2060  DATA ?Los Angeles,8,4,Tijuana,8,0,Pitcairn Is.,8.5,0,x,0,0
  304. 2062  DATA Hermosillo,7,4,x,0,5,x,0,6,x,0,7
  305. 2064  DATA Mexico City,6,6,x,0,7,x,0,0,x,0,0
  306. 2066  DATA Lima,5,7,x,0,8,x,0,9,x,0,0
  307. 2068  DATA Caracus,4,8,x,0,9,x,0,0,x,0,0
  308. 2070  DATA Rio de Janeiro,3,8,x,0,9,x,0,0,x,0,0
  309. 2072  DATA Cape Verde Islands,2,9,x,0,10,x,0,11,x,0,0
  310. 2074  DATA Azores,1,11,x,0,12,x,0,0,x,0,0
  311. 2076  DATA Accra,0,12,x,0,13,x,0,0,x,0,0
  312. 2078  DATA Kinshasa,-1,13,x,0,14,x,0,15,x,0,0
  313. 2080  DATA Johannesburg,-2,13,x,0,14,x,0,15,x,0,0
  314. 2082  DATA Nairobi,-3,14,x,0,15,x,0,0,x,0,0
  315. 2084  DATA Mauritius,-4,16,x,0,0,x,0,0,x,0,0
  316. 2086  DATA Maldives,-5,16,Bombay,-5.5,17,x,0,0,x,0,0
  317. 2088  DATA Dacca,-6,17,Rangoon,-6.5,18,x,0,19,x,0,0
  318. 2090  DATA Jakarta,-7,19,x,0,20,x,0,0,x,0,0
  319. 2092  DATA Perth,-8,19,x,0,20,x,0,21,x,0,0
  320. 2094  DATA Tokyo,-9,20,Adelaide,-9.5,21,x,0,22,x,0,0
  321. 2096  DATA Sydney,-10,22,x,0,23,x,0,0,x,0,0
  322. 2098  DATA New Caledonia,-11,23,Norfolk Is.,-11.5,24,x,0,22,x,0,0
  323. 2100  DATA Wellington,-12,24,x,0,1,x,0,0,x,0,0
  324. 2200  N=-1:IF A$="Non"THEN 1550
  325. 2210  N=N+1:IF N>KK THEN IF MIS=0 THEN LOCATE 23,25:PRINT"   ":COLOR BW:LOCATE 24,10:PRINT"Please try again.";:LOCATE 23,25:COLOR BR:MIS=1:GOTO 1932 ELSE GOTO 1550
  326. 2220  IF LEFT$(PS$(N),3)=A$ THEN 2230 ELSE 2210
  327. 2230  CIT$=PS$(N):TDIF=TP(N,0):GOTO 2300
  328. 2300  CLS:LOCATE 8,9:COLOR BR:PRINT"Please wait ...":M=VAL(MO$):D=VAL(DA$):A$=INKEY$
  329. 2302  RESTORE 2303:FOR I=1 TO 12:READ ND(I):NEXT I
  330. 2303  DATA 31,28,31,30,31,30,31,31,30,31,30,31
  331. 2330  MG=M:HG=H:DG=D:MIG=MI:YG=Y:DST=0:IF TP(N,1)=0 THEN 2365
  332. 2340  IF M>10 OR M<4 THEN 2365
  333. 2350  IF M=4 AND D<24 THEN 2365
  334. 2355  IF M>4 AND M<10 THEN DST=1:TDIF=TDIF-1:GOTO 2365
  335. 2360  HF=0:MIF=0:DF=32:MF=M:YF=Y:IF M=4 THEN DF=31
  336. 2362  DF=DF-1:IF DF<D THEN 2364 ELSE GOSUB 2900:GOSUB 2995:IF DW<>0 THEN 2362 ELSE IF DF>D THEN 2363 ELSE IF H>1 THEN 2364 ELSE 2363
  337. 2363  IF M=4 THEN DST=0:GOTO 2365 ELSE IF M=10 THEN DST=1:TDIF=TDIF-1:GOTO 2365
  338. 2364  IF M=4 THEN DST=1:TDIF=TDIF-1 ELSE IF M=10 THEN DST=0
  339. 2365  MDIF=(TDIF-INT(TDIF))*60:TIF=INT(TDIF)
  340. 2370  HG=H+TIF:MIG=MI+MDIF:IF MIG>60 THEN MIG=MIG-60:HG=HG+1 ELSE IF MIG<0 THEN MIG=MIG+60:HG=HG-1
  341. 2388  NDA=ND(MG):IF M=2 AND (Y MOD 4)=0 THEN NDA=29
  342. 2390  IF HG>24 THEN HG=HG-24:DG=DG+1:IF DG>NDA THEN MG=MG+1:DG=1:IF MG=13 THEN MG=1:YG=YG+1
  343. 2391  NDA=ND(MG-1):IF MG=3 AND (YG MOD 4)=0 THEN NDA=29
  344. 2392  IF HG<0 THEN HG=HG+24:DG=DG-1:IF DG=0 THEN MG=MG-1:IF MG=0 THEN MG=12:YG=YG-1:DG=31 ELSE DG=NDA
  345. 2395  YF=YG:MF=MG:DF=DG:HF=0:MIF=0:GOSUB 2900:T#=(JD#-2.41502E+06)/36525:ST#=((1.075E-06*T#)+100.002)*T#+0.276919:SD#=24*(ST#-INT(ST#))+1.00274*(HG+MIG/60):MIG$=RIGHT$(STR$(MIG),2):IF MIG<10 THEN MIG$="0"+RIGHT$(MIG$,1)
  346. 2396  UT$=STR$(HG)+":"+MIG$+" "+RIGHT$(STR$(MG),2)+"/"+RIGHT$(STR$(DG),2)+"/"+RIGHT$(STR$(YG),4)
  347. 2398  MIF=MIG:HF=HG:GOSUB 2900
  348. 2400  SCREEN 0,1:CLS:LOCATE 8,9:COLOR BR:PRINT"Please wait while the sky":LOCATE 10,9:PRINT"map is being prepared for"
  349. 2410  LOCATE 13,9:PRINT"latitude "LAT$:LOCATE 15,9:PRINT"longitude "LON$:LOCATE 17,9:D$=MO$+"/"+DA$+"/"+Y$:PRINT "on "D$" at ";:TI$=H$+":"+MI$:PRINT TI$;:IF DST=1 THEN PRINT" DST";
  350. 2415  LOCATE 19,9:PRINT CIT$" time.":LOCATE 21,9:GOSUB 2900:'PRINT JD#" J.D. at Greenwich":LOCATE 22,9:PRINT SD#" S.T.":LOCATE 23,9:PRINT UT$ " U.T."
  351. 2417  FTAU=(JD#-2.45154E+06)/36524.2
  352. 2420  FO=MO:FDST=DST:FLAT=LAT:FLON=LON:FLAT$=LAT$:FLON$=LON$:FUT$=UT$:FSD#=SD#:FTI$=TI$:FD$=D$:FCIT$=CIT$:FTDIF=TDIF:FJD#=JD#:COMMON FDST,FLAT,FLON,FLAT$,FLON$,FUT$,FSD#,FTI$,FCIT$,FTDIF,FD$,FJD#,FTAU,FO
  353. 2430  CHAIN"map",30150
  354. 2500  ON ERROR GOTO 2615:OF=(VG*90-100)*RF
  355. 2510  XX=X-XC+5:YY=YC-Y-5:XPY=XX*XX+YY*YY
  356. 2520  T=LO*LO+XPY
  357. 2530  P=T/(L*LO-SQR(T-XPY*L*L))
  358. 2540  PX=SQR(P*P-XPY)
  359. 2550  D=PX*CT-YY*ST
  360. 2560  CA=SQR(XX*XX+D*D)
  361. 2570  SA=(YY*CT+PX*ST)
  362. 2575  TA=SA/CA:CA=CA/P:SA=SA/P
  363. 2580  O=OF+ATN(XX/D):IF D<0 THEN O=O-PI
  364. 2590  IF O>PI THEN O=O-2*PI ELSE IF O<-PI THEN O=O+2*PI
  365. 2600  'LPRINT PX*CT YY*ST D XX YY XPY T P PX
  366. 2610  ON ERROR GOTO 2800:RETURN
  367. 2615  X=XO:Y=YO:ON ERROR GOTO 2800:RESUME 2510
  368. 2700  OF=(VG*90-100)*RF
  369. 2710  O=O-OF
  370. 2720  CO=COS(O):SO=SIN(O)
  371. 2730  D=(L-SA*ST-CA*CO*CT)/LO
  372. 2740  X=XC-5+CA*SO/D
  373. 2750  Y=YC-5-(SA*CT-CA*CO*ST)/D
  374. 2760  RETURN
  375. 2800  A$=INKEY$:IF A$<>""THEN 2800
  376. 2802  BR=6+MO:IF ERR=2 THEN CLS:SCREEN 0,1:COLOR BR:IF ERR=25 OR ERR=57 OR ERR=24 OR ERR=68 THEN LOCATE 5,5:PRINT"There is some error":LOCATE 7,5:PRINT"with your hardware.":LOCATE 9,5:PRINT"Please check your equipment.":GOTO 2814
  377. 2804  IF ERR=57 OR ERR=25 OR ERR=24 OR ERR=68 THEN ERT=ERT+1:RESUME 0
  378. 2806  CLS:SCREEN 0,1:COLOR BR:IF ERR=72 THEN LOCATE 5,5:PRINT"Your diskette has gone bad.":LOCATE 7,5:PRINT"Place another copy of":LOCATE 9,5:PRINT"P.C. Planetarium in your":LOCATE 11,5:PRINT"diskette drive.":GOTO 2814
  379. 2808  IF ERR<>71 AND ERR<>53 THEN RESUME 2850 ELSE COLOR BR:LOCATE 5,5:PRINT"There is some trouble with the":LOCATE 6,5:PRINT"diskette.  Please be sure that":LOCATE 7,5:PRINT"the P.C. Planetarium diskette":LOCATE 8,5:PRINT"is in your diskette drive and
  380. 2810  LOCATE 9,5:PRINT"that the diskette drive door":LOCATE 10,5:PRINT"is closed."
  381. 2814  LOCATE 20,5:PRINT"Press";:COLOR 15:PRINT" ENTER";:COLOR BR:PRINT" when you are ready."
  382. 2820  A$=INKEY$:IF A$=""THEN 2820 ELSE IF A$<>CHR$(13) THEN 2820 ELSE SCREEN 1:COLOR C1,C2:LOCATE 1,1:PRINT"Please wait...";:RESUME
  383. 2850  CHAIN "front"
  384. 2900  'JD from yf mf df hf mif
  385. 2910  DD=DF+(HF+(MIF/60))/24:YY=YF:MM=MF:IF MF<3 THEN YY=YY-1:MM=MM+12
  386. 2920  B=0:IF(YF+MF/100+DD/10000)>=1582.1 THEN A=INT(YY/100):B=2-A+INT(A/4)
  387. 2930  C=0:IF YY<0 THEN C=0.25
  388. 2940  JD#=INT(365.25*YY+C)+INT(30.6001*(MM+1))+DD+1.72099E+06+B:RETURN
  389. 2950  'cd from jd
  390. 2960  Z=INT(JD#+0.5):F=JD#+0.5-Z:A=Z:IF Z>=2.29916E+06 THEN Q=INT((Z-1.86722E+06)/36524.2):A=Z+1+Q-INT(Q/4)
  391. 2970  B=A+1524:C=INT((B-122.1)/365.25):D=INT(365.25*C):E=INT((B-D)/30.6001)
  392. 2980  DD=B-D-INT(30.6001*E)+F:MM=E-1:IF E>13.5 THEN MM=E-13
  393. 2985  YY=C-4716:IF MM<2.5 THEN YY=YY+1
  394. 2990  RETURN
  395. 2995  DW#=JD#+1.5-7*INT((JD#+1.5)/7):DW=DW#:RETURN
  396.